<?php
//时区的设置与读取
//PRC Asia/chongqing  Asia/Shanghai  Asia/urumqi
//设置时区
//date_default_timezone_set('PRC');
//获取时区
//echo date_default_timezone_get();
//echo date('Y-m-d H:i:s');
//echo time();
//list($userc,$sec) = explode(' ',microtime());
//毫秒后面就是微秒
//echo $sec.' : '.$userc;
//参数设置为true 的时候返回浮点数
//echo microtime(true);

//计算脚本执行的时间
//function runtime($start = null,$end=null){
//    static $cache = [];
//    if(is_null($start)){
//        return $cache;
//    }elseif (is_null($end)){
//        return $cache[$start] = microtime(true);
//    }else{
//        $end = $cache[$end] ??microtime(true);
//        return $end - $cache[$start];
//    }
//}
//
////record
//runtime('for');
//for($i = 0 ; $i < 200000000;$i++){
//
//}
//echo runtime('for',true);
//
//echo '<hr/>';
////record
//runtime('while');
//$n = 0;
//while($n < 200000000):
//    $n++;
//endwhile;
//echo runtime('while',true);



//计算脚本执行的时间
function runtime($start_time=null,$end_time=null){
    //使用静态变量   因为使用静态变量是可以对数据进行保存的  使用正常的变量是要被初始化的
    static $cache = [];
    //开始都没开始也就不存在结束
    if(is_null($start_time)){
        return $cache;
    }elseif (is_null($end_time)){
        //如果没有结束时间，能走到这里证明已经开始了，那么就记录开始时间
        return $cache[$start_time] = microtime(true);
    }else{
        //否则的话就是两个都
        $cache[$end_time] = microtime(true);
        $res_time = $cache[$end_time] - $cache[$start_time];
        return $res_time;
    }
}

//开始计算for循环运行的时间
runtime('for');
for($i = 0;$i<200000000;$i++){

}
//计算for循环的时间
//echo 'for循环所花费的时间是'.runtime('for',true);

//开始计算while循环所花费的时间
runtime('while');
$n = 0;
while ($n < 200000000):
    $n++;
endwhile;
//echo 'while循环所花费的时间是'.runtime('while',true);
//echo '<hr />';
echo 'for循环和while循环一共花费的时间是'.runtime('for','while');